package com.smartStatus.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.beans.factory.annotation.Value;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 系统用户表
 * </p>
 *
 * @author lby
 * @since 2021-01-11
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("sys_user")
@ApiModel(value = "SysUser对象", description = "系统用户表")
public class SysUser extends Model<SysUser> {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;


    /**
     * 用户登录名称
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户登录名称")
    private String userName;


    /**
     * 用户正式姓名
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户正式姓名")
    private String name;


    /**
     * 删除标志0：存在 1：删除
     */
    @TableLogic
    @TableField(exist = true)
    @ApiModelProperty(value = "删除标志0：存在 1：删除")
    private Integer delFlag;


    /**
     * 用户登录密码
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户登录密码")
    private String password;


    /**
     * 用户电话
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户电话")
    private String phone;


    /**
     * 用户邮箱
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户邮箱")
    private String email;


    /**
     * 用户头像地址
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户头像地址")
    private String avatarUrl;


    /**
     * 用户性别0:男 1：女
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户性别0:男 1：女")
    private Integer sex;

    /**
     * 用户冻结状态
     * 0:未冻结
     * 1：已冻结
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户冻结状态 0:未冻结 1：已冻结")
    private Boolean state;

    /**
     * 创建时间
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 角色id
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "角色id")
    private List<Integer> roleIdList;

    /**
     * 用户角色
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "用户角色")
    private List<SysRole> sysRoleList;

    /**
     * 随机查询条件
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "随机查询条件")
    private String blurry;

    /**
     * 用户省身份证号
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户省身份证号")
    private String idCard;

    /**
     * 用户名族 0:汉族 1：其他
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户名族 0:汉族 1：其他")
    private String famousFamily;


    /**
     * 用户出生日期
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户出生日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;


    /**
     * 用户学号/工号
     */
    @TableField(exist = true)
    @ApiModelProperty(value = "用户学号/工号")
    private String jobNumber;


}
